﻿@{
    ViewBag.Title = "SIIV - Campos";
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.Header = "Administración de Campos";
}

@model List<SIIV.Data.Campo>

<script type="text/javascript">
    $().ready(function () {
        $.ajaxSetup({
            error: function (jqXHR, textStatus, errorThrown) {
                alert(jqXHR.statustext)
                alert(jqXHR.statusText)
                alert(jqXHR.responseText)
            }
        });
    });

    //Evento que se dispara cuando el DOM esta listo para ser utilizado
    $(document).ready(function () {

        jQuery('#loading').ajaxStart(function () {
            jQuery(this).show();
        });

        jQuery('#loading').ajaxError(function (e, xhr, opts, error) {
            alert('La petición a la página ' + opts.url + ' ha devuelto el siguiente error: ' + xhr.status + ' - ' + error);
        });

        jQuery('#loading').ajaxStop(function () {
            jQuery(this).hide();
        });

        //Seteo los CSS Class en el validador para que actuen segun su validacion
        $.validator.addClassRules({
            'required': {
                required: true
            }
        });

        //Extiendo por jQuery los mensajes del plugin validador 
        //(sobre-escribo los ya existentes)
        $.extend($.validator.messages, {
            required: "Campo requerido",
            maxlength: jQuery.validator.format("El máximo de caracteres es {0}")
        });

        // Inicio el plugin
        $("#frmEdicion").validate({
            errorElement: "div"
        });

    });

    $(function () {
        $('ul#icons li').hover(
		    function () { $(this).addClass('ui-state-hover'); },
		    function () { $(this).removeClass('ui-state-hover'); }
	    );

        $("#divEdicion").dialog({
            autoOpen: false,
            height: 400,
            width: 350,
            modal: true,
            buttons: {
                "Guardar": function () {
                    $('#frmEdicion').validate()
                    if ($('#frmEdicion').valid()) {
                        if (idCampo == 0) {
                            $.post(
                                "/Administracion/AgregarCampo",
                                {
                                    nombre: $("#Nombre").val(),
                                    descripcion: $("#Descripcion").val(),
                                    idProductor: $("#Productor").val(),
                                    region: $("#Region").val(),
                                    ubicacion: $("#Ubicacion").val()
                                },
                                function (data) {
                                    alert(data)
                                    $("#divEdicion").dialog("close");
                                }
                            );
                        }
                        else {
                            $.post(
                                "/Administracion/ActualizarCampo",
                                {
                                    idCampo: idCampo,
                                    nombre: $("#Nombre").val(),
                                    descripcion: $("#Descripcion").val(),
                                    idProductor: $("#Productor").val(),
                                    region: $("#Region").val(),
                                    ubicacion: $("#Ubicacion").val()
                                },
                                function (data) {
                                    alert(data)
                                    $("#divEdicion").dialog("close");
                                }
                            );
                        }
                        $('#campos').load('/Administracion/Campos');
                    }

                }
                ,
                "Cancelar": function () {
                    $(this).dialog("close");
                }
            },
            close: function () {
                ;
            }
        });

        $("#divEliminacion").dialog({
            autoOpen: false,
            height: 150,
            width: 350,
            modal: true,
            buttons: {
                "Confirmar": function () {
                    $("#divEliminacion").dialog("close");

                    $.post(
                        "/Administracion/EliminarCampo",
                        { idCampo: idCampo },
                        function (data) {
                            alert(data)
                            $("#divEliminacion").dialog("close");
                        }
                    );

                    $('#campos').load('/Administracion/Campos');

                }
                ,
                "Cancelar": function () {
                    $(this).dialog("close");
                }
            },
            close: function () {
                ;
            }
        });

        $("#divEdicion").find('input').keypress(function (e) {
            if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
                e.preventDefault();
                $(".ui-dialog:visible").find('.ui-dialog-buttonpane').find('button:first').click();
            }
        });

        $("#divEliminacion").find('input').keypress(function (e) {
            if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
                e.preventDefault();
                $(".ui-dialog:visible").find('.ui-dialog-buttonpane').find('button:first').click();
            }
        });
    });

    var idCampo

    function editarCampo(id, nombre, descripcion, productor, region, ubicacion) {
        idCampo = id
        $("#Nombre").val(nombre)
        $("#Descripcion").val(descripcion)
        $("#Productor").val(productor)
        $("#Region").val(region)
        $("#Ubicacion").val(ubicacion)
        $("#divEdicion").dialog('option', 'title', 'Editar Campo')
        $("#divEdicion").dialog("open")
    }

    function agregarCampo() {
        idCampo = 0        
        $("#Nombre").val('')
        $("#Descripcion").val('')
        $("#Region").val('')
        $("#Ubicacion").val('')

        $("#divEdicion").dialog('option', 'title', 'Nuevo Campo')
        
        $("#divEdicion").dialog("open")
    }

    function eliminarCampo(id) {
        idCampo = id
        $("#divEliminacion").dialog("open")
    }
</script>

@section Menu{
    @Html.Partial("Menu")
}

<div id="campos">
    @Html.Partial("CamposGrid")
</div>

<div id="divEdicion" class="art-PostContent">
    @using (@Ajax.BeginForm("ActualizarCampo", "Administracion", null, new { @id = "frmEdicion" }))
    { 
        <p>
            <b>Nombre</b><br />
            @Html.TextBox("Nombre", null, new { @class = "required", @id = "Nombre", @maxlength = 50 })
            <br />
        </p>
        <p>
            <b>Productor</b><br />
            @Html.DropDownList("Productor", ViewBag.Productores as IEnumerable<SelectListItem>, new { @id = "Productor" })
            <br />
        </p>
        <p>
            <b>Descripción</b><br />
            @Html.TextArea("Descripcion", null, new { @id = "Descripcion", @maxlength = 200 })
            <br />
        </p>
        <p>
            <b>Ubicación</b><br />
            @Html.TextBox("Ubicacion", null, new { @class = "required", @id = "Ubicacion", @maxlength = 50 })
            <br />
        </p>
        <p>
            <b>Región</b><br />
            @Html.TextBox("Region", null, new { @class = "required", @id = "Region", @maxlength = 50 })
            <br />
        </p>
    }

    <div class="cleared">
    </div>
        
</div>

<div id="divEliminacion" title="Eliminar Campo" class="art-PostContent">
    ¿Está seguro de eliminar el campo seleccionado?
    <div class="cleared">
    </div>
</div>
